package com.example.missingpersons.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serial;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * missing_person 实体类
 * @author 张芸博
 * @since 2025-03-12
 */
@Data
@AllArgsConstructor
@TableName("missing_person")
public class MissingPerson implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 失踪人员的唯一标识
     */
    @TableId(value = "person_id", type = IdType.AUTO)
    @Schema(name = "person_id", description = "失踪人员的唯一标识")
    private Integer personId;

    /**
     * 姓名
     */
    @Schema(name = "name", description = "姓名")
    private String name;

    /**
     * 性别
     */
    @Schema(name = "gender", description = "性别")
    private String gender;

    /**
     * 年龄
     */
    @Schema(name = "age", description = "年龄")
    private Integer age;

    /**
     * 出生日期
     */
    @Schema(name = "birth_date", description = "出生日期")
    private LocalDate birthDate;

    /**
     * 身高
     */
    @Schema(name = "height", description = "身高")
    private BigDecimal height;

    /**
     * 体重
     */
    @Schema(name = "weight", description = "体重")
    private BigDecimal weight;

    /**
     * 外貌描述
     */
    @Schema(name = "appearance_description", description = "外貌描述")
    private String appearanceDescription;

    /**
     * 最后出现的地点
     */
    @Schema(name = "last_seen_location", description = "最后出现的地点")
    private String lastSeenLocation;

    /**
     * 最后出现的日期
     */
    @Schema(name = "last_seen_date", description = "最后出现的日期")
    private LocalDate lastSeenDate;

    /**
     * 失踪时的衣着描述
     */
    @Schema(name = "clothing_description", description = "失踪时的衣着描述")
    private String clothingDescription;

    /**
     * 照片（文件路径或二进制数据）
     */
    @Schema(name = "photo", description = "照片（文件路径或二进制数据）")
    private String photo;

    /**
     * 联系方式（家属或联系人）
     */
    @Schema(name = "contact_info", description = "联系方式（家属或联系人）")
    private String contactInfo;

    /**
     * 状态（如：失踪、已找到、已确认死亡等）
     */
    @Schema(name = "status", description = "状态（如：失踪、已找到、已确认死亡等）")
    private String status;

    /**
     * 记录创建时间
     */
    @Schema(name = "created_at", description = "记录创建时间")
    private LocalDateTime createdAt;

    /**
     * 记录更新时间
     */
    @Schema(name = "updated_at", description = "记录更新时间")
    private LocalDateTime updatedAt;


}
